package br.com.yahoo.mau_mss.tutorlucene.service;

import java.io.File;
import br.com.yahoo.mau_mss.tutorlucene.model.Curriculum;

/**
 * Interface de serviço contendo métodos para adição e indexação de currículos.
 * @author Paulo Sigrist / Wilson A. Higashino
 */
public interface CurriculumService {


  /**
   * Adiciona e indexa um novo currículo.
   * @param curriculum - Currículo a ser adicionado
   * @throws CurriculumException
   */
  public void addCurriculum(Curriculum curriculum) throws CurriculumException;

  /**
   * Indexa um currículo específico.
   * @param curriculum - Currículo a ser indexado
   * @param file - Caminho do arquivo que está sendo indexado
   * @throws CurriculumException
   */
  public void index(Curriculum curriculum, File file) throws CurriculumException;

  /**
   * Reindexa todos os currículos existentes.
   * O índice existente é completamente substituído por um novo.
   * @throws CurriculumException
   */
  public void indexAll() throws CurriculumException;
}
